home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / time / times.c < prev    next >
C/C++ Source or Header  |  1989-08-20  |  892b  |  39 lines

  1. /*
  2.  * Copyright (c) 1980 Regents of the University of California.
  3.  * All rights reserved.  The Berkeley software License Agreement
  4.  * specifies the terms and conditions for redistribution.
  5.  */
  6.  
  7. #if defined(LIBC_SCCS) && !defined(lint)
  8. static char sccsid[] = "@(#)times.c    5.2 (Berkeley) 3/9/86";
  9. #endif /* LIBC_SCCS and not lint */
  10.  
  11. #include <sys/time.h>
  12. #include <sys/resource.h>
  13. #include <sys/types.h>
  14. #include <sys/times.h>
  15.  
  16. static
  17. scale60(tvp)
  18.     register struct timeval *tvp;
  19. {
  20.  
  21.     return (tvp->tv_sec * 60 + tvp->tv_usec / 16667);
  22. }
  23.  
  24. times(tmsp)
  25.     register struct tms *tmsp;
  26. {
  27.     struct rusage ru;
  28.  
  29.     if (getrusage(RUSAGE_SELF, &ru) < 0)
  30.         return (-1);
  31.     tmsp->tms_utime = scale60(&ru.ru_utime);
  32.     tmsp->tms_stime = scale60(&ru.ru_stime);
  33.     if (getrusage(RUSAGE_CHILDREN, &ru) < 0)
  34.         return (-1);
  35.     tmsp->tms_cutime = scale60(&ru.ru_utime);
  36.     tmsp->tms_cstime = scale60(&ru.ru_stime);
  37.     return (0);
  38. }
  39.